package com.chushouya.manager.service.admin;




import com.chushouya.manager.dto.admin.dept.DeptListDTO;
import com.chushouya.manager.dto.admin.dept.DeptListQuery;
import com.chushouya.manager.dto.admin.dept.DeptSaveDTO;
import com.chushouya.manager.dto.admin.dept.DeptTreeDTO;

import java.util.List;

/**
 * 部门业务
 */
public interface DeptService {

    /**
     * 获取部门列表
     */
    List<DeptListDTO> selectDeptList(DeptListQuery query);

    /**
     * 根据部门编号获取详细信息
     */
    DeptSaveDTO getDeptDetail(Long deptId);

    /**
     * 获取部门下拉树列表
     */
    List<DeptTreeDTO> getDeptTree();

    /**
     * 新增部门
     */
    Long addDept(DeptSaveDTO dept);

    /**
     * 编辑部门
     */
    Long editDept(DeptSaveDTO dept);

    /**
     * 删除部门
     */
    void removeDept(Long deptId);

    /**
     * 查询子级部门, 只查询下一级部门
     */
    List<Long> selectChildDeptIdList(Long deptId);

    /**
     * 查询所有的子级部门(多层级)
     *
     * @param deptId 部门id
     */
    List<Long> selectAllChildDeptIdList(Long deptId);

    Long selectIdByName(String name);

}
